import java.util.Stack;
//输入两个整数序列，第一个序列表示栈的压入顺序，判断第二个序列是否可能为该栈的弹出顺序。
public class IsPopOrder {
    //判断出栈入栈顺序是否正确
    public boolean IsPopOrder (int[] pushV, int[] popV) {
        // write code here
        //首先，我们需要先创建一个栈空间
        //在入栈出栈的过程中，我们要保证当popV数组遍历结束时，需要栈为空
        Stack<Integer> stack = new Stack<Integer>();
        //遍历pushV的每个元素
        int j = 0;
        for(int i = 0;i<pushV.length; i++){
            //首先进行压栈
            stack.push(pushV[i]);
            while(!stack.isEmpty() && j < popV.length && stack.peek() == popV[j]){
                stack.pop();
                j++;
            }
        }
        if(stack.isEmpty()){
            return true;
        }
        return false;

    }
}
